const info = {
  userInfo: null, // 用户信息
  userToken: '',
  storeId: '',
  showAddress: false, // 是否选择了地址
  showLogin: false, // 是否需要登录
  checkNav: '', // 首页导航
  checkFlag: false,
  brandImage: '',
  shoppCountFlag: true, // 购物车数量变动
  shoppCount: 0, // 购物车数量
  inviter: "", // 是否是扫分享二维码进来
  // 宠物登记
  allpets: null,
  petsLisui: null,
  windowHeight: 0,
}

import {
  sha1,
  disposeList
} from '/utils/util'

import axios from '/utils/axios'

App({

  signin: function (detail, cb) {
    const self = this
    if (detail) {
      wx.login({
        success(code) {

          // 针对解密失败，重新调一次getUserInfo
          wx.getUserInfo({
            success(result) {

              let {
                encryptedData,
                iv,
                rawData,
                signature
              } = result

              let paramJson = {
                encryptedData,
                rawData,
                iv: encodeURIComponent(iv),
                signature: sha1(rawData + "MHMWC9F2r8YmrlQLsw2"),
                code: code.code
              }

              if (self.globalData.inviter) {
                paramJson['inviter'] = self.globalData.inviter
              }

              axios('/groupon/smallLogin', paramJson).then(res => {
                if (res.data.resultcode == 1) {
                  // 登录成功后，储存tokne与userInfo
                  wx.setStorage({
                    key: 'userToken',
                    data: res.data.result.token,
                  })

                  wx.setStorage({
                    key: 'userInfo',
                    data: res.data.result.userinfo,
                  })

                  self.globalData.userToken = res.data.result.token
                  self.globalData.userInfo = res.data.result.userinfo

                  typeof cb === "function" && cb(res.data.result.userinfo)
                }
              })

            }
          })

        }
      })
    }
  },

  // 处理商品价格list
  disposeList: function (list) {
    // 这里的disposeList方法是utils里的
    return disposeList(list)
  },

  onLaunch: function (e) {

    // 展示本地存储能力
    var logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)

    this.globalData.userToken = wx.getStorageSync("userToken")
    this.globalData.userInfo = wx.getStorageSync("userInfo")

    // 登录
    wx.login({
      success: res => {
        // 发送 res.code 到后台换取 openId, sessionKey, unionId
      }
    })
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
              // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
              // 所以此处加入 callback 以防止这种情况
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })

  },
  globalData: info
})